home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / telecomm / fnordadl / fn132src.zoo / ref-man / misc.tex < prev    next >
Encoding:
Text File  |  1991-09-02  |  43.0 KB  |  1,113 lines

  1. @comment Tell Emacs to use -*-texinfo-*- mode
  2. @comment $Id: misc.tex,v 2.4 91/09/01 23:04:31 royce Exp $
  3.  
  4. @node Miscellaneous, Fnordadel Support, File Transfers, Top
  5. @chapter Miscellaneous
  6.  
  7. Yup, this is the good old "miscellaneous" chapter, that place
  8. where we put stuff which either didn't seem to fit into any other chapter,
  9. or which we figured didn't deserve a chapter of its own.  So here we go.
  10.  
  11. @node Things to Make Fnordadel Work or Work Better, Logging and Debugging, Miscellaneous, Miscellaneous
  12. @section Things to Make Fnordadel Work or Work Better
  13. @cindex Speedups
  14. @cindex Efficiency improvements
  15.  
  16. Most of the programs we mention in this section are available on RT and
  17. secret.  If you can't find them anywhere else, phone one of our systems.
  18. @xref{Fnordadel Support}.
  19.  
  20. Here are a few things you will @emph{absolutely need} to avoid trouble:
  21.  
  22. @itemize @bullet
  23. @item
  24. If you have a hard drive, @sc{tos} 1.4 (or greater, like @sc{tos} 1.6 in the
  25. STE), or both, make sure you have @code{foldr100.prg} installed in your
  26. AUTO boot folder.  You may not need @code{foldr100.prg} if you have access
  27. to another program that does a similar function, for example
  28. Revolver from Intersect Software or the hard drive boot handler
  29. supplied with newer ICD host adaptor-based hard drives.  Both of
  30. these products allow you to allocate buffers for extra folders,
  31. a necessary thing due to bugs in @sc{tos}.  Even if you don't have a
  32. hard drive, @sc{tos} 1.4 and 1.6 will need these extra buffers because of
  33. bugs they have.
  34.  
  35. @item
  36. If you have @sc{tos} 1.4 or greater, you must also have @code{poolfix3.prg}
  37. installed in your @file{auto} boot folder.  These versions of @sc{tos} have
  38. some bugs that are corrected by the @code{poolfix} program, so make sure
  39. it is correctly installed before going any further.  We also include
  40. @code{poolfix4}, which is a version of @code{poolfix3} with hacks to
  41. permit it to run in any position in your auto folder.  (@code{poolfix3} likes
  42. to be first, but so do some other auto programs.)  @code{poolfix4} is
  43. @emph{NOT} from Atari; it was done by somebody else.  Therefore, use it at
  44. your own risk.
  45.  
  46. @item
  47. If you have @sc{tos} 1.4 or greater, and wish to run your system with a
  48. high-speed modem, you will need to install @code{tos14fx2.prg} in your
  49. AUTO folder.  This Atari fix solves a glitch with @sc{rts}/@sc{cts} flow
  50. control, something fairly necessary at speeds of 9600 bps and higher.
  51.  
  52. @end itemize
  53.  
  54. Here are some things you will probably want, to make life nicer:
  55.  
  56. @itemize @bullet
  57. @item
  58. If you only have 512K of @sc{ram}, you might want to consider getting an
  59. upgrade to 1MB, especially if you do not own a hard drive.  There
  60. are a lot of things that can make running your system easier and
  61. more enjoyable, such as @sc{ram}disks and command shells.  But they need
  62. memory to run.  Pretty well all models of ST lose about 100K of
  63. @sc{ram} to @sc{gem} and @sc{tos}.  Fnordadel itself needs another 200K or so.
  64. On a machine with 512K tops, memory can disappear pretty quickly,
  65. leaving little or no room for the niceties.
  66.  
  67. @item
  68. No matter what model of ST you have, and whether you have a hard
  69. drive or not, if you do not have a new version of @sc{tos} (1.4 or 1.6,
  70. the latter available standard [and only] on the STE machines),
  71. then we @emph{highly} recommend getting a @sc{tos} upgrade.  Disk performance is
  72. @emph{much} improved under newer versions of @sc{tos}, although if you are
  73. running on floppy disks you won't notice it much due to their
  74. inherently slow access times and data transfers rates.  The new
  75. versions of @sc{tos} also provide a lot of other enhancements and fixes
  76. that are worth having, especially if you use the @sc{gem} desktop a lot.
  77.  
  78. @item
  79. A display ``accelerator'', such as the excellent Quick ST, from
  80. Branch Always Software, is a useful addition.  Early versions of
  81. Quick ST are available
  82. in the public domain, so try to get ahold of a copy and try it
  83. out.  If you like it, you can pick up the commercial version for
  84. about $20.  Quick ST provides a very nice speed-up to all screen
  85. display operations used in Fnordadel, and many operations used
  86. in @sc{gem}-based programs as well.
  87. @end itemize
  88.  
  89. @node Logging and Debugging, Help Files, Things to Make Fnordadel Work or Work Better, Miscellaneous
  90. @section Logging and Debugging
  91. @cindex Logging
  92.  
  93. Fnordadel has various ways of logging its actions for your later
  94. perusal.  They include the call-log and the net-log.  In addition, there
  95. are both normal and network-specific debugging flags for still more useless
  96. information.
  97.  
  98. @node The call-log, The Net-Log, Logging and Debugging, Logging and Debugging
  99. @subsection The call-log
  100. @cindex Caller activity log
  101.  
  102. The call-log is kept in the file @file{calllog.sys}, which is
  103. stored in your @code{#auditdir}.  It records information about callers,
  104. @vindex auditdir
  105. file downloads that may occur, and system up/down times.  It can
  106. be defined to document any or all of these things; see @file{ctdlcnfg.doc}
  107. for precise directions on how.  Suffice it to say that if you
  108. define the @file{ctdlcnfg.sys} variable @code{call-log} to be @samp{1}, it will
  109. @vindex call-log
  110. cause a call-log to be kept, documenting system up/down times as
  111. well as caller information, but not file downloads.
  112.  
  113. When the system is brought up, a line of the form
  114.  
  115. @example
  116. System brought up @var{<date>} @@ @var{<time>}
  117. @end example
  118.  
  119. @noindent
  120. will be written to @file{calllog.sys}.  When the system is taken down,
  121.  
  122. @example
  123. System brought down <@var{date}> @@ <@var{time}>
  124. @end example
  125.  
  126. @noindent
  127. will be written.  And when a user has called, you'll see a line
  128. of this form:
  129.  
  130. @example
  131. <@var{username}>          :  <@var{date}> <@var{in}> - <@var{out}> (<@var{baud}>) [@var{flags}]    
  132. @end example
  133.  
  134. @noindent
  135. The meanings are as follows:
  136.  
  137. @table @var
  138. @item username
  139. is the name of the user;
  140. @item date
  141. is the date on which he/she called;
  142. @item in
  143. is the user's login time;
  144. @item out
  145. is the user's termination time;
  146. @item baud
  147. is the baud rate at which the call was made, or
  148. ``console'' if the login was from the Console;
  149. @item flags
  150. @cindex Caller activity flags
  151. documents anything unusual about the call.  The
  152. following flags are defined:
  153. @table @code
  154. @item +
  155. New user.
  156. @item R
  157. User was denied access to the system due
  158. to a login restriction (@pxref{Login restrictions}).
  159. @item P
  160. The user was punted off by the use of the
  161. @code{[P]oll} command from the Sysop's Net menu.
  162. @item e
  163. An event punted the user off (@pxref{Events}).
  164. @item t
  165. The user timed out (meaning that he went
  166. for about 3 minutes without hitting a key).
  167. @item k
  168. The user was Killed while online (see @code{[K]ill user} in
  169. @ref{User Status Commands}).
  170. @item p
  171. The user did a @code{.T(erminate) P(unt)}, which
  172. restores all of his non-vital settings to
  173. their pre-call state.
  174. @item s
  175. The user did a @code{.T(erminate) S(tay)}.  This
  176. means that he logged off without hanging
  177. up; this is a good clue as to the identity
  178. of the next person to login.
  179. @item G
  180. A user on the Console was kicked off when
  181. carrier was detected; this happens if
  182. you're on the Console and you use @samp{^L M} instead
  183. of @code{[T]erminate}.
  184. @item D
  185. The user unceremoniously disconnected
  186. without using @code{[T]erminate}.  This doesn't
  187. hurt anything, but it's bad style.
  188. @item E
  189. The user was an ``EVILE'' user; he entered
  190. more than a tolerable number of consecutive
  191. bad commands, meaning that either
  192. @enumerate
  193. @item
  194. he's @emph{really} clueless, or
  195. @item
  196. he had extreme line noise problems.
  197. @end enumerate
  198. @item r
  199. The user was punted by having the modem
  200. reinitialised on him; this is accomplished
  201. by using @code{[R]einitialise} from the Sysop menu.
  202. @item c
  203. The user called, but was denied access to
  204. the system due to exceeding the @code{maxcalls}
  205. limit; see @ref{Calls per day}.
  206. @item T
  207. The user was denied access due to having
  208. exceeded the @code{maxtime} limit; see @ref{Connect time per day}.
  209. @item C
  210. The user was denied access due to having
  211. exceeded the @code{maxclosecalls} limit; see @ref{Close calls per day}.
  212. @end table
  213. @end table
  214.  
  215. The call-log is one of the few things in Fnordadel that
  216. are not self-maintaining; it will continue to grow indefinitely,
  217. so it needs to be periodically deleted.  You may wish to use the
  218. utility program @code{callstat} to process your call-log and
  219. @pindex callstat
  220. generate some statistics about your system's usage.  See
  221. @file{callstat.man} for details.
  222.  
  223. @node The file-log
  224. @subsection The file-log
  225. @cindex File transfer logging
  226.  
  227. If you have the @file{ctdlcnfg.sys} variable
  228. @vindex audit-files
  229. @code{audit-files} set
  230. to @samp{1}, the system will keep a log of user file downloads
  231. from your system.  The log is kept in a file called @file{filelog.sys},
  232. located in your @code{#auditdir}.
  233.  
  234. @node The net-log, Debugging, The Call-Log, Logging and Debugging
  235. @subsection The net-log
  236. @cindex Network logging
  237.  
  238. If you have the @file{ctdlcnfg.sys} variable @code{netlog} defined,
  239. @vindex netlog
  240. or if you invoke @code{citadel} with @samp{+netlog} on the command line,
  241. @pindex +netlog (citadel)
  242. Fnordadel will keep a log of all network activity in a file
  243. called @file{netlog.sys}, located in your @code{#auditdir}.  Most of the
  244. @vindex auditdir
  245. junk that gets printed to the screen during any networking is
  246. written to this file, so you'll have a pretty good idea of what
  247. your system's been up to.  If you do any long-distance networking,
  248. it's probably a good idea to watch this file regularly to keep
  249. tabs on mail transfers, failed calls, and anything else that
  250. costs you money.
  251.  
  252. As with the call-log, the net-log can get quite large
  253. quite quickly, so keep an eye on it and nuke it every now and
  254. then.  If you find yourself never looking at it, you may simply
  255. wish to stop telling Fnordadel to keep it.  If you're not
  256. running with a hard drive, you probably won't have room for
  257. this file.
  258.  
  259. @node Debugging, Crashes, The Net-Log, Logging and Debugging
  260. @subsection Debugging
  261. @cindex Debugging
  262.  
  263. Ah yes, debugging---we know it's our favourite!
  264. Fnordadel has a couple of debugging options which can be
  265. specified on the command line to @code{citadel} or can be defined
  266. in @file{ctdlcnfg.sys} (as with @code{netlog} above).  They are @code{debug}
  267. and @code{netdebug}.
  268. @pindex +debug (citadel)
  269. @pindex +netdebug (citadel)
  270. @vindex debug
  271. @vindex netdebug
  272.  
  273. @code{debug} causes seemingly random debugging stuff to be
  274. printed out at seemingly random times; it won't affect the
  275. operation of the board at all, though.
  276.  
  277. @code{netdebug} operates on network things; you'll notice that
  278. still more junk will get printed on the screen (and written to
  279. @file{netlog.sys} during networking when you have this turned on.
  280.  
  281. In general, you shouldn't have to worry about stuff like
  282. this, but if you're having a problem and we tell you to turn
  283. debugging on to help track it down, you'll know what to do.
  284.  
  285. @node Crashes,  , Debugging, Logging and Debugging
  286. @subsection Crashes
  287. @cindex Crashes
  288.  
  289. Sadly, your Fnordadel will probably crash on you at
  290. some point.  You'll come up to the system, switch on the monitor,
  291. and see the screen come to life showing the @sc{gem} desktop or your
  292. favorite command shell, not your Fnordadel!  Aie!  What to do?
  293.  
  294. Happily, most crashes encountered by Fnordadel can be
  295. semi-gracefully handled.  This means that the system is able to
  296. write out the @file{ctdltabl.sys} file and prevent you from having to
  297. reconfigure your system.  You should be able to start right
  298. back up if you see that @file{ctdltabl.sys} is there.
  299.  
  300. Just to be on the safe side, though, Fnordadel will
  301. stick a message about the crash in a file called -- oddly --
  302. @file{crash}.  This file lives in the same directory as @file{ctdltabl.sys},
  303. so look for it and read it if it's there.  There's an outside
  304. chance it might tell you something useful.  If your system
  305. crashes and you can't find a crash file, that means the crash
  306. was a bad one.  @file{ctdltabl.sys} probably won't be there either, so
  307. you'll have to reconfigure things.  It would probably be in
  308. your best interest to reboot your system as well.
  309.  
  310. @node Help Files, Curious Feeps, Logging and Debugging, Miscellaneous
  311. @section Help Files
  312. @cindex Help files
  313.  
  314. One of the standard system directories defined in @file{ctdlcnfg.sys} is
  315. @code{#helpdir}; it's where the help files, menus and
  316. @vindex helpdir
  317. ``blurbs'' go.  These files
  318. are all just standard @sc{ascii} text, and are therefore freely editable by
  319. the Sysop.  We think the set provided with Fnordadel is pretty good,
  320. but nothing is above improvement.
  321.  
  322. In general, the files ending in @samp{.mnu} (the menus) and @samp{.blb} (the
  323. ``blurbs'') should not be deleted or renamed, because Fnordadel looks for
  324. them specifically.  Most of the files ending in @samp{.hlp}, however, are not
  325. bound by any such restriction, and may be renamed or disposed of at will.
  326. Exceptions are:
  327.  
  328. @table @file
  329. @item dohelp.hlp
  330. general novice help; called by @code{[H]elp}
  331. @item policy.hlp
  332. system policy; force-fed to new users on their first call
  333. @item summary.hlp
  334. extended command summary; called by @samp{.?}
  335. @item topics.hlp
  336. the main hot-helps menu; called by @code{.H(elp) ?}
  337. @end table
  338.  
  339. In order to customize your system, you may create any number of @samp{.hlp}
  340. files, and integrate them with the online help system
  341. (@pxref{Hot-help system}).  You will also want to edit some of the other help
  342. files provided.  In particular, most of the @samp{.blb} files should be
  343. looked at and changed as required, and @file{policy.hlp} and
  344. @file{localbbs.hlp} should be modified.  The @samp{.mnu} files should never
  345. need any modifications.
  346.  
  347. @node Hot-help system, BLurB files, Help Files, Help Files
  348. @subsection The hot-help system
  349. @cindex Hot-help system
  350.  
  351. Any text file you like can be displayed by the @code{.H(elp)} command
  352. if it is in the @code{#helpdir} directory, ends with the extension @samp{.hlp},
  353. @vindex helpdir
  354. and your users can find out its name.  However, if your help files
  355. contain special codes,
  356. they can be made to point to other (hopefully related) help files.
  357. This is encoded in a help file by placing lines of this form in it:
  358.  
  359. @example
  360. %@var{topic}<tab>@var{Description}
  361. @end example
  362.  
  363. The name @var{topic} must correspond to a help file ending in @samp{.hlp},
  364. i.e. @file{topic.hlp}.  All @code{%} lines in a file
  365. will be assigned a letter, and when the help file has finished printing
  366. out, the user will be prompted to enter a letter corresponding to
  367. the further help file he wishes to read.  Don't put too many @code{%} lines
  368. in any given file, though, or the first few will scroll off the top
  369. of the screen before the prompt appears.
  370.  
  371. Another thing you can do in the @samp{.hlp} files is specify
  372. lines of the form
  373.  
  374. @example
  375. %%Some text of your choice
  376. @end example
  377.  
  378. @noindent
  379. to give the help system the cue that @samp{Some text of your choice}
  380. should be displayed while and @emph{only} while it is processing the
  381. @samp{.hlp} file in hot-help mode.  Some @samp{.hlp} files (e.g. @file{policy.hlp} and
  382. @file{summary.hlp}) are called up both in the hot-help system and somewhere
  383. else, where the menu-handling procedure is not done.  The @code{%%}
  384. lines, which you can use as headings or what have you, will thus
  385. appear when the file is being used as a menu, and disappear when it
  386. is being used as a one-shot display of information.
  387.  
  388. An example will make this easier to figure out.  Suppose
  389. that we have a help file called @file{society.hlp} (let's say we run a
  390. non-profit organisation@dots{})  This file might say something like
  391. this:
  392. @example
  393. The Foobar Non-Profit Society Creed:
  394. We are dedicated to being our society.
  395.  
  396. %%For more information on the Non-Profit Society, see:
  397.  
  398. %MEETINGS       Times and locations of upcoming meetings.
  399. %MEMBERS        The most recent membership list.
  400. %GOSSIP         Neat new gossip from our members.
  401. @end example
  402. @noindent
  403. When the user types
  404. @example
  405. .H(elp) society
  406. @end example
  407. @noindent
  408. he or she will see:
  409. @example
  410. The Foobar Non-Profit Society Creed:
  411. We are dedicated to being our society.
  412.  
  413. For more information on the Non-Profit Society, see:
  414.  
  415. [A] MEETINGS    Times and locations of upcoming meetings.
  416. [B] MEMBERS     The most recent membership list.
  417. [C] GOSSIP      Neat new gossip from our members.
  418.  
  419. Select [A-C] or [RETURN] to exit:
  420. @end example
  421. @noindent
  422. If, for some reason, the file @file{society.hlp} was ever
  423. displayed to the user by one of the other help mechanisms in the code
  424. he or she would see the following:
  425.  
  426. @example
  427. The Foobar Non-Profit Society Creedo:
  428. We are dedicated to being our society.
  429. @end example
  430.  
  431. At this point the user will do as instructed, we hope.
  432. Using the hot-help system carefully allows you to construct a
  433. hierarchical sort of help system; see the distribution help file
  434. set for an example of this.
  435.  
  436. @node BLurB files, MeNU files, Hot-help system, Help Files
  437. @subsection BLurB files
  438. @cindex .blb files
  439. @cindex Blurb files
  440.  
  441. The following @samp{.blb} files are referenced by Fnordadel.
  442. If they aren't present, your users will probably see a little
  443. error message which says @samp{No help file @var{<whatever>}}.
  444. Or we may have had the foresight to build in a hard-wired message
  445. that actually means something sensible.
  446.  
  447. @table @file
  448. @item banner.blb
  449. The opening banner; spit out to users when
  450. they first connect with your system.
  451. @item banner.@var{n}
  452. The optional rotating banner files, @file{banner.1} through
  453. @file{banner.@var{n}}.
  454. @item deny.blb
  455. Used only if you're running a closed
  456. system (@code{loginok} is @samp{0}).  It is shown to
  457. new users; it should say something about
  458. how new users need to leave the Sysop
  459. mail to get an account.
  460. @item entry.blb
  461. This is printed for non-Expert users when
  462. they are about to enter a message; it should
  463. say stuff about how the formatter works
  464. and so on.
  465. @item fakeerr.blb
  466. This is displayed to remote users when the Sysop hits the
  467. @samp{^E} command on the console.  Say what you like, but
  468. if you're courteous, you'll put something in that's
  469. suitably apologetic for your cavalier butchering of the
  470. user's login session.
  471. @item logout.blb
  472. A message printed after a user @code{.T(erminate)}s
  473. from the system, just before carrier is lost.
  474. @item maxcalls.blb
  475. A message given to users who are denied
  476. system access due to exceeding the @code{maxcalls}
  477. limit; see @ref{Calls per day}.
  478. @item maxclose.blb
  479. This message is given to users who are denied
  480. system access due to exceeding the
  481. @code{maxclosecalls} limit; see @ref{Close calls per day}.
  482. @item maxmsg.blb
  483. A message given to users who try to enter
  484. more messages in a room than allowed by the
  485. @code{msgenter} or @code{mailenter} limits; see
  486. @ref{Messages per room per call},
  487. and @ref{Mail messages per call}.
  488. @item maxtime.blb
  489. A message given to users who are denied
  490. system access due to exceeding the @code{maxtime}
  491. limit; see @ref{Connect time per day}.
  492. @item newroom.blb
  493. Printed whenever a non-Expert enters a new
  494. room.
  495. @item nochat.blb
  496. This is shown to any user who asks for a
  497. Chat while you have chat mode turned off.
  498. @item notice.blb
  499. After a user logs in but before he reaches
  500. the room prompt, he will be shown this file.
  501. @item password.blb
  502. This blurb is shown to new users just before
  503. they select a password; it should say
  504. something about picking something not easily
  505. guessed.
  506. @item restrict.blb
  507. A ``we're closed, call back later'' message
  508. used when a login restriction results in a
  509. user being barred from using the system.
  510. @end table
  511.  
  512. @node MeNU files,  , BLurB files, Help Files
  513. @subsection MeNU files
  514. @cindex .mnu files
  515. @cindex Menu files
  516.  
  517. The following @samp{.mnu} files are referenced by Fnordadel.
  518. They are printed out whenever a user hits a question mark at various
  519. points.  There should never be any need to change them; they may be
  520. updated by us as new features are added to Fnordadel.  As with
  521. @samp{.blb} files, if they aren't present, your users will probably see
  522. a little error message which says ``No help file <@var{whatever}>''.
  523.  
  524. @table @file
  525. @item aide.mnu
  526. @code{.A(ide) ?}
  527. @item aideedit.mnu
  528. @samp{?} from the @code{.A(ide) E(dit)} menu, where the
  529. user logged in is only an Aide and not the Sysop or a Co-Sysop
  530. @item aideflr.mnu
  531. @code{;A(ide) ?}
  532. @item browser.mnu
  533. @samp{?} from the browser prompt
  534. @item config.mnu
  535. @samp{?} from the @code{.E(nter) C(onfiguration)} prompt
  536. @item ctdllist.mnu
  537. @samp{?} from the purge or restrict prompts
  538. @item ctdlopt.mnu
  539. @samp{?} from the main Sysop menu (@samp{^L})
  540. @item ctdlstat.mnu
  541. @samp{?} from the user status menu (@samp{^L U})
  542. @item edit_inf.mnu
  543. @samp{?} from the room info editor
  544. @item edit_msg.mnu
  545. @samp{?} from the message editor
  546. @item entopt.mnu
  547. @code{.E(nter) ?}
  548. @item floor.mnu
  549. @samp{;?}
  550. @item known.mnu
  551. @code{.K(nown) ?}
  552. @item lobbedit.mnu
  553. @samp{?} from the @code{.A(ide) E(dit)} menu, where
  554. the user logged in has Sysop or Co-Sysop status and
  555. the room being edited is @code{Lobby>}
  556. @item logout.mnu
  557. @code{.T(erminate) ?}
  558. @item mainopt.mnu
  559. @samp{?} from the room prompt
  560. @item more.mnu
  561. @samp{?} from a @code{.R(ead) M(ore)} prompt (@samp{More? })
  562. @item netedit.mnu
  563. @samp{?} from the net node edit menu (@samp{^L N E})
  564. @item netopt.mnu
  565. @samp{?} from the net menu (@samp{^L N})
  566. @item readopt.mnu
  567. @code{.R(ead) ?}
  568. @item roomedit.mnu
  569. @samp{?} from the @code{.A(ide) E(dit)} menu, where
  570. the user logged in has Sysop or Co-Sysop status
  571. @item specedit.mnu
  572. @samp{?} from the @code{.A(ide) E(dit)} menu, where
  573. the user logged in has Sysop or Co-Sysop status and
  574. the room being edited is @code{Aide>}
  575. @end table
  576.  
  577. @node Curious Feeps, File Locations, Help Files, Miscellaneous
  578. @section Curious Feeps
  579. @cindex Feeping creatures
  580.  
  581. This is the @emph{really} miscellaneous section---a place for stuff
  582. so miscellaneous, it doesn't even deserve a section of its own.
  583.  
  584. @node Uppercase elimination, <fnord>s, Curious Feeps, Curious Feeps
  585. @subsection Uppercase elimination
  586. @cindex Uppercase, elimination thereof
  587.  
  588. The system converts messages from upper-case-only folks to
  589. lower-case, then does a simple capitalization algorithm.  This is
  590. lots easier on the eyes of those who actually read messages.  This
  591. feature does, however, trip up people who actually @emph{intended} a
  592. message to be all upper-case.
  593.  
  594. If you include even one lower-case
  595. character in a message, the conversion and capitalisation thing will
  596. not be done, so a standard trick is to put a lower-case L (@samp{l}) in
  597. place of a @samp{1} somewhere.  I've seen people do this l0 times,
  598. just to be sure!  (Credit where credit is due -- we didn't
  599. put this one in, it came with STadel, but was probably put in by
  600. Hue, Jr. in Citadel-86, or even CrT in the original CP/M Citadel.)
  601.  
  602. @node <fnord>s, User timeouts, Uppercase elimination, Curious Feeps
  603. @subsection <fnord>s
  604. @cindex Fnords
  605. @cindex Subliminal <fnord><vote Rhino> messages
  606.  
  607. Fnordadel is a somewhat whimsical piece of software.  Some of
  608. its features have been hacked in on the spur of the moment; others just
  609. seemed to materialise.  The authors' primary reason for working on the
  610. software at all is just ``because it's neat''.  So, we occasionally break
  611. from ``serious hacken'' and put in bits of silliness or weirdness.  The
  612. <fnord> feature is one such bit.
  613.  
  614. <fnord> is a subliminal trigger word, and since @sc{bbs}es are
  615. the ideal forum for perpetuating subliminal messages, we've
  616. thoughtfully bound the @samp{P} key (at the room prompt level) to
  617. the <fnord>s.
  618.  
  619. Simply put a file called @file{fnord.sys} in your @code{#sysdir}.  It
  620. @vindex sysdir
  621. should contain a list of silly sayings, one per line, which will be chosen
  622. from at random and spit at the user when he (always mistakenly) hits @samp{P}.  The size of @file{fnord.sys} is practically unlimited, but it is all loaded
  623. into @sc{RAM} when Fnordadel starts, so be very careful.
  624. Anyway, say your @file{fnord.sys} has the following lines:
  625.  
  626. @example
  627. send money
  628. read my lips
  629. no newt axes!
  630. the Sysop's a babe
  631. @end example
  632.  
  633. Depending on the state of some random bits inside the machine, a
  634. user hitting @samp{P} might see
  635.  
  636. @example
  637. <fnord><no newt axes!>
  638. @end example
  639.  
  640. @noindent
  641. and will suddenly begin to wonder whether Mr Bush ever said
  642. anything about ``Taxes''.  Or he might see
  643.  
  644. @example
  645. <fnord><the Sysop's a babe>
  646. @end example
  647.  
  648. @noindent
  649. in which case you can expect a proposition in @code{Mail>}.  Or, best of
  650. all, he might see
  651.  
  652. @example
  653. <fnord><send money>
  654. @end example
  655.  
  656. @noindent
  657. and, if you've thoughtfully put your mailing address in, say, a
  658. help file (or perhaps in another <fnord>), the money will roll in.
  659. Neat, huh?
  660.  
  661. To disable <fnord>s, if you don't like 'em, just get rid
  662. of the @file{fnord.sys} file.
  663.  
  664. @node User timeouts, New user message viewing, <fnord>s, Curious Feeps
  665. @subsection User timeouts
  666. @cindex Idleness, user timeouts because of
  667. @cindex Timeouts due to user idleness
  668. @cindex User timeouts due to idleness
  669.  
  670. It's an annoying thing to have users monopolize your system
  671. for large chunks of time, but it would be even more annoying if they
  672. did so by spending long minutes idly sitting at a command prompt
  673. somewhere.  To prevent this, Fnordadel has a timeout feature that
  674. it inherited from STadel: if a user's session is idle (i.e. no screen
  675. or keyboard activity) for 3 minutes or so, the system will print a
  676. cutesy message and log him/her off.  This timeout can also apply to
  677. console users such as the Sysop, if you wish it.  See the @code{sysopsleep}
  678. @vindex sysopsleep
  679. parameter in @file{ctdlcnfg.doc}.
  680.  
  681. @node New user message viewing
  682. @subsection New user message viewing
  683. @cindex New users, message reading by
  684.  
  685. Another annoying thing is having a new user call in (at 300
  686. baud, too, wouldn't you know it!) and read every message in every room
  687. on your system.  Argh!  Well, there is a @file{ctdlcnfg.sys} parameter called
  688. @vindex newusermsgs
  689. @code{newusermsgs} which lets you set how many messages the system will
  690. think are new to each new user calling in.  It defaults to @samp{50} if you
  691. don't set it otherwise.  If you set it to @samp{0}, all messages will be new.
  692. This variable helps the user's first call to get him/her the gist of what's
  693. being discussed, without swamping her/him with an overload of info, or
  694. crippling your system with massive connect times.  Of course, it
  695. doesn't help on subsequent calls@dots{}
  696.  
  697. @node User configuration defaults
  698. @subsection User configuration defaults
  699. @cindex User configuration, defaults
  700. @cindex Defaults for user configuration
  701.  
  702. We had a request to allow the Sysop to set default values for some of
  703. the user configuration values that new users aren't asked about if
  704. they claim not to be Citadel experts.  To that end, there are currently
  705. several @file{ctdlcnfg.sys} flags that you can diddle to give your novice users
  706. the ``correct'' combination of features: @code{defshowtime}, @code{deflastold},
  707. @code{deffloormode}, @code{defreadmore}, @code{defnumleft} and
  708. @code{defautonew}.  See
  709. @vindex defshowtime
  710. @vindex deflastold
  711. @vindex deffloormode
  712. @vindex defreadmore
  713. @vindex defnumleft
  714. @vindex defautonew
  715. @file{ctdlcnfg.doc} for more.
  716.  
  717. @node Status line
  718. @subsection Status line
  719. @cindex Status line
  720.  
  721. @pindex citadel
  722. @pindex +line (citadel)
  723. One of the most popular additions orc made to STadel was the status line, an
  724. inverse mode, non-scrolling line of user information placed at the bottom
  725. of the console screen.  It is activated by invoking @code{citadel} with
  726. the @code{+line} option.  This gets you at-a-glance information about an
  727. online user, including user name, current room, time of login, current
  728. time, and some flags.
  729.  
  730. @cindex Status line flags
  731. The flags consist of @samp{R}, which indicates a Sysop console request is
  732. pending (@pxref{Special keys}); @samp{T}, which indicates the current user
  733. is a twit (@pxref{Special keys}, @pxref{Your Callers}); @samp{C}, which
  734. indicates chat mode is currently enabled (@pxref{Sysop Special Functions});
  735. and @samp{*}, which indicates that the user has an unanswered chat request
  736. outstanding.
  737.  
  738. If the status line is not active, Fnordadel will display some information
  739. about the user just before each room prompt as the user moves about the
  740. system.  This information is shown only on the console.
  741.  
  742. @node Rotating banners
  743. @subsection Rotating banners
  744. @cindex Rotating banners
  745. @cindex Banners, rotating
  746. We received several requests to implement @dfn{rotating banners}, something
  747. Hue, Jr. recently put into his Citadel-86.  Figuring we'd already blown any
  748. possible reputation for seriousness, we figured ``what the heck'', and here
  749. they are.
  750.  
  751. To use rotating banners on your system, create a number of files called
  752. @file{banner.1}, @file{banner.2}, @file{banner.3}, etc. in your
  753. @vindex helpdir
  754. @code{#helpdir} directory.  Leave the existing @file{banner.blb} file there.
  755. Then define the @file{ctdlcnfg.sys} parameter
  756. @vindex numbanners
  757. @code{#numbanners} to be the number of banners you want to rotate through.
  758. You can set the parameter
  759. @vindex bannerblb
  760. @code{#bannerblb} to @samp{1} if you want the system to display
  761. @file{banner.blb} following the rotating banner it picks at random, or to
  762. @samp{0} if the rotating banner files should stand alone.
  763.  
  764. @node File Locations, Multitasking and Fnordadel, Curious Feeps, Miscellaneous
  765. @section File Locations
  766. @cindex System files
  767. @cindex Files, where they all live
  768.  
  769. The following is a more-or-less complete list of where Fnordadel
  770. expects to find which files (or where you can find files that Fnordadel
  771. deposits).  Don't shoot us if we've missed one, though.
  772.  
  773. @table @code
  774. @item #auditdir
  775. @vindex auditdir
  776. @table @file
  777. @item calllog.sys
  778. The call-log
  779. @item filelog.sys
  780. The user file transfer log
  781. @item netlog.sys
  782. The network activity log
  783. @item debuglog.sys
  784. The debugging log
  785. @item chat.rec
  786. Text from captured Chat sessions
  787. @item sysop.msg
  788. Where archived Sysop mail goes (if enabled)
  789. @item callstat.sys
  790. Useful statistics written by @code{callstat}
  791. @pindex callstat
  792. @item callbaud.sys
  793. Supplementary useful statistics from @code{callstat}
  794. @end table
  795.  
  796. @item #helpdir
  797. @vindex helpdir
  798. @table @code
  799. @item *.hlp
  800. Help files
  801. @item *.mnu
  802. Menus
  803. @item *.blb
  804. ``Blurbs''
  805. @end table
  806.  
  807. @item #holddir
  808. @vindex holddir
  809. @table @file
  810. @item hold@var{nnnn}
  811. Held message for user #@var{nnnn}
  812. @end table
  813.  
  814. @item #msgdir
  815. @vindex msgdir
  816. @table @file
  817. @item ctdlmsg.sys
  818. The message base
  819. @end table
  820.  
  821. @item #netdir
  822. @vindex netdir
  823. @table @file
  824. @item ctdlnet.sys
  825. The net-list
  826. @item ctdlloop.zap
  827. The loop-zapper database
  828. @item ctdlpath.sys
  829. Path alias definitions
  830. @item dial_@var{n}.prg
  831. External dialer programs
  832. @item @var{n}.ml
  833. Semi-temporary files for net-mail to node #@var{n}
  834. @item @var{n}.nfs
  835. Semi-temporary files for file sends/requests for node #@var{n}
  836. @item @var{n}.fwd
  837. Semi-temporary files for mail forwarding to node #@var{n}
  838. @item @var{xxxxxxx}.dis
  839. Discard message files
  840. @end table
  841.  
  842. @item #roomdir
  843. @vindex roomdir
  844. @table @file
  845. @item room@var{nnnn}.sys
  846. The room files (where @var{nnnn} = 0000 to (@code{maxrooms} - 1))
  847. @item room@var{nnnn}.inf
  848. The optional room info files (where @var{nnnn} = 0000 to (@code{maxrooms} - 1))
  849. @end table
  850.  
  851. @item #sysdir
  852. @vindex sysdir
  853. @table @file
  854. @item citadel.lck
  855. Lockfile used by @code{citadel} and many others; helps
  856. prevent dangerous collisions when using doors or a
  857. multi-tasking system.
  858. @item ctdllog.sys
  859. The user log
  860. @item ctdlflr.sys
  861. The floors file
  862. @item ctdldoor.sys
  863. Door definitions
  864. @item ctdlarch.sys
  865. Room archiving information
  866. @item alias.sys
  867. Shared room aliasing definitions
  868. @item purge.sys
  869. List of users to whom the purge feature will apply
  870. @item restrict.sys
  871. List of users to restrict login to
  872. @item fnord.sys
  873. Silly sayings for the @samp{P} key
  874. @item calldata.sys
  875. Cumulative data maintained by @code{callstat}
  876. @pindex callstat
  877. @item checkpt.sys
  878. Checkpoint file for @code{configur}
  879. @end table
  880.  
  881. @end table
  882.  
  883. In addition, a few files are expected to live in Fnordadel's home
  884. directory (i.e., the directory in which Fnordadel is run).  These are:
  885.  
  886. @table @file
  887. @item ctdltabl.sys
  888. The system tables file; needed by almost everything,
  889. including @code{citadel}.  Regenerated by @code{configur}.
  890. @item crash
  891. If there's been a crash and Fnordadel saw it coming,
  892. this is where it puts a report.
  893. @end table
  894.  
  895. @node Multitasking and Fnordadel, Fnordadel vs. STadel, File Locations, Miscellaneous
  896. @section Multitasking and Fnordadel
  897. @cindex Multitasking
  898.  
  899. Some time before orc ceased work on STadel, he made some modifications
  900. to it to make it operate a little nicer in a multi-tasking environment on the
  901. Atari ST.  The multi-tasker he specifically tested was AMULTI, but MX2, MiNT
  902. and Multi-GEM are three others we know of as of this writing.  The first three
  903. are public domain,
  904. all four should be used only if you know what you're doing, and none of them
  905. is guaranteed to work properly or reliably with Fnordadel, since we've
  906. never done a lick of work to make sure Fnordadel will live properly with
  907. them.  However, it's on our list of things to do when we get time, so don't
  908. hesitate to send reports of your experiences with Fnordadel and
  909. multitasking.  Any information we can get from out there will make us that much
  910. better prepared to tackle any problems there may be.
  911.  
  912. @pindex citadel
  913. @pindex +multi (citadel)
  914. @cindex Background process, Fnordadel as a
  915. To activate Fnordadel for use in a multi-tasking environment, as a background
  916. process, invoke @code{citadel} with the option @samp{+multi}, and using
  917. whatever mechanism your multitasker needs to indicate a background process.
  918. (See the options section of @file{citadel.man}.)  At this point in time, all
  919. this option does is basically shut off Fnordadel's screen output so that the
  920. display doesn't get messed up while you're doing other things, and make the
  921. system ignore keyboard input from the console.  All other activities continue
  922. as normal, including networking.
  923.  
  924. @cindex Foreground, bringing Fnordadel to
  925. Once Fnordadel is running in the background, you will probably want to
  926. bring it to the foreground at some point.  At the very least, you will
  927. have to do this when you want to shut Fnordadel down, since the only way
  928. to properly take the system down is using the @samp{^LQ} command.  To
  929. reconnect Fnordadel to the console, run the utility
  930. @pindex sysop
  931. @code{sysop}, which tells the system to listen up.  Fnordadel
  932. will once again display things on your monitor and listen to the keyboard.
  933. See @file{sysop.man}.
  934.  
  935. To send the system back into the background again, you can hit @samp{^Z}
  936. at the console.  Fnordadel will stop displaying to the screen and taking
  937. input from the console keyboard.  Make sure you're logged out and the
  938. system is back in modem mode when you do this!  @xref{Special keys}, for
  939. more info about @samp{^Z}.  Also see @ref{Special net keys}.
  940.  
  941. @cindex Multitasking lock file
  942. @cindex Lock file
  943. Most Fnordadel utility programs that need to update @file{ctdltabl.sys}, or
  944. other system files, will check for the existence of the @file{citadel.lck}
  945. file that was mentioned briefly in the last section.  If the file is present,
  946. the utility will abort, otherwise it will go ahead and do its thing.
  947. @emph{Be warned}, however, that there may be a utility or three that doesn't
  948. behave properly in this regard.  Thus if you are running Fnordadel in the
  949. background, be very careful to avoid clobbering something by running Fnordadel
  950. updating utilities at the same time.
  951.  
  952. @node Fnordadel vs. STadel, Compatibilities, Multitasking and Fnordadel, Miscellaneous
  953. @section Fnordadel vs. STadel
  954. @cindex STadel vs. Fnordadel
  955.  
  956. This section is for those of you who are converting up from STadel.
  957. If you aren't converting, you can read it for trivia, or ignore it.  We have
  958. developed a converter program to take STadel 3.3d systems to the current
  959. version of Fnordadel, hopefully preserving all important system files.  See
  960. the @file{conv33d.doc} document for details on conversion.
  961.  
  962. Since Fnordadel is directly descended from STadel 3.3b, with many
  963. pieces borrowed from STadel 3.4a (which never got released, that we know of),
  964. most of the things you liked about STadel will still be here.  We added this
  965. section mainly because many of you who convert will probably notice right
  966. away that some things, such as running @code{configur} or saving messages, seem
  967. slower with Fnordadel.  You're not imagining things, and before you get
  968. homicidal or erase Fnordadel from your system, we want to explain.
  969.  
  970. Some of you may have noticed that the slow-down seems related to room-oriented
  971. operations.  If so, you hit the nail on the head.  From the conversion
  972. process, you'll know there is a big difference in how rooms are done.  This is
  973. what causes the speed difference as well, and is the only aspect in which
  974. Fnordadel is slower than STadel.  Hopefully we can temper the shock with
  975. good reasons for the change.
  976.  
  977. STadel (and other Cits) use a single file to store rooms, called
  978. @file{ctdlroom.sys}.  The file is opened once when the system starts, and closed once
  979. when it exits.  All rooms occupy a fixed-size record in @file{ctdlroom.sys}, and
  980. accessing the records requires seeking to the record, followed by one read or
  981. write operation to transfer all the room's data.
  982.  
  983. Some time ago, we got sick and tired of the 58 messages per room limit,
  984. along with all the other limits (64 rooms per system, 16 shared rooms per net
  985. node, etc.)  We got rid of them all in a similar fashion to Hue, Jr.'s method
  986. of eliminating the limits in Citadel-86, by allowing the Sysop to define the
  987. limits himself in @file{ctdlcnfg.sys}, and alter them on the fly with various
  988. utility programs.  With the messages per room limit, however, we chose a
  989. different approach.
  990.  
  991. Any fixed number of messages per room, we reasoned, will be inefficient
  992. since there will rarely-approaching-never be exactly that number of messages
  993. in any room.  If there are too few messages, the extra space in the room
  994. record will be wasted, while if there are too many messages, they can't all
  995. fit and thus you'll have space in @file{ctdlmsg.sys} wasted by messages that
  996. nobody can ever see.
  997.  
  998. We therefore decided to make the room records vary in size so they are
  999. always exactly as big as required to fit the number of messages really in each
  1000. room.  No more wasted space in the room records, and no more wasted space in
  1001. the message file.  Unfortunately, we could no longer store the room records in
  1002. one file, since their varying size would be practically impossible to deal
  1003. with in the confines of a single file.
  1004.  
  1005. Consequently, we broke the room file up into one file per room, each
  1006. now able to be whatever size required to store the number of messages in it.
  1007. This gave us the desired space efficiency.  It also improved damage control;
  1008. with STadel, a bad sector or corrupted room record would wipe out the whole
  1009. @file{ctdlroom.sys} file.  Since the file can't be regenerated by
  1010. @code{configur}, the
  1011. effect was to lose your entire message base even though the @file{ctdlmsg.sys} file
  1012. was perfectly intact!  Now with Fnordadel, a bad sector or corrupted room
  1013. record causes the loss of only one room, not the entire message base.
  1014.  
  1015. Sadly, the improved space efficiency and security has a price.  No
  1016. longer do we have the single room file, which is opened once, closed once and
  1017. accessed via one read or write operation per room.  Now, with one file per
  1018. room, each file must be opened and closed each time it is accessed (we can't
  1019. have them all open at once; @sc{tos} has limits on this kind of thing).  This
  1020. opening and closing takes time.  Also, we can't use a single read or write to
  1021. access the room record, since it varies in size.  We first read or write the
  1022. fixed-size part of the record (name, status flags, etc.), then the variable-sized
  1023. part (message pointers).  This double read/write also takes extra time.
  1024.  
  1025. The net result is a common one: to improve efficiency, you sacrifice
  1026. speed, and vice versa.  We're working on ways to get every extra jot of speed
  1027. out of the new code, but it will probably always be slower than the older
  1028. method.  One thing that will help speed it up is to throw the @code{#roomdir}
  1029. @vindex roomdir
  1030. directory onto a small @sc{ram} disk.  If you do this, make sure you back up
  1031. the directory to disk regularly, either manually or using a command shell and
  1032. automated scripts.  If you choose not use the @sc{ram} disk, take some comfort
  1033. in knowing that the slower room access times are not for nothing, they are
  1034. buying you much increased space efficiency and system reliability.
  1035.  
  1036. @node Compatibilities, Beta Releases of Fnordadel, Fnordadel vs. STadel, Miscellaneous
  1037. @section Compatibilities, Incompatibilities, and Fixes
  1038.  
  1039. This section is for miscellaneous facts we've come across that could
  1040. affect your Fnordadel due to other products' behavior.
  1041.  
  1042. @itemize @bullet
  1043. @item
  1044. Turbo ST, a commercial display accelerator, causes the Fnordadel
  1045. status line to freak out.  We don't know of any version of Turbo
  1046. ST that works properly.  Our advice is to get ahold of a program
  1047. called Quick ST, by Branch Always Software.  It's what we use, and
  1048. it works great.  (@xref{Things to Make Fnordadel Work or Work Better}.)
  1049.  
  1050. @item
  1051. We've heard a lot of reports about various doors (usually games)
  1052. that do not work properly, but we're usually unable to discover
  1053. any particular problems since we don't run many doors ourselves.
  1054. If you have trouble with a door that is publicly available, the
  1055. best approach is to send us a copy of it along with detailed
  1056. instructions on how to duplicate your troubles.  Then we'll see
  1057. if we can fix things.  If you can't send us the door for some
  1058. reason, send us a detailed description of your problem, and we
  1059. might be able to figure out what's going on anyway.  If you're
  1060. writing your own doors and run into trouble, send us your code
  1061. (if you're programming in C), or your executable program (if
  1062. you're programming in anything else), and we'll look into it.
  1063.  
  1064. @item
  1065. As reported by kbad@@Virtuality, Fnordadel appears to work like
  1066. a charm on the Atari TT030.  So if your ego requires you to have
  1067. the hottest Fnordadel this side of Virtuality, run out and buy a
  1068. TT for yourself.
  1069.  
  1070. @item
  1071. So-called ``packer'' programs are popular here and there, especially
  1072. with users running without the Amazing Benefits of a hard drive.
  1073. These packers compress other executable programs just like archiving
  1074. programs such as LHarc, Arc and Zoo.  The difference is that the
  1075. compressed programs can still be run as before, with the nicety that
  1076. they take much less disk space to store.  The only cost is that they
  1077. take slightly more time to load and execute, since they must
  1078. uncompress themselves on the fly.
  1079.  
  1080. For users running on floppy drive(s), and finding that space is a
  1081. problem, we have two comments.  First, space is always a problem,
  1082. even with a hard drive.  Second, get ahold of a packer
  1083. program from your favorite Atari ST file transfer board, and try it
  1084. out on the Fnordadel programs and utilities.  We don't guarantee
  1085. that they will pack, or run properly if packed, but it's worth a try.
  1086. @end itemize
  1087.  
  1088. @node Beta Releases of Fnordadel,  , Compatibilities, Miscellaneous
  1089. @section Beta Releases of Fnordadel
  1090. @cindex Beta releases of Fnordadel
  1091.  
  1092. We put Fnordadel out in ``releases'', rather than small, random
  1093. upgrades to different programs.  However, the large majority of the
  1094. releases are ``beta'', i.e. they have some deficiency, and we don't
  1095. necessarily want everybody under the sun to take that version and start
  1096. running it.  Normally, beta releases are sent to a select few ``beta
  1097. sites'', run by Sysops who understand and accept the risks involved with
  1098. running beta software that might have problems.  They have agreed to
  1099. actively help us solve any problems that come up in the code they run,
  1100. and we fully expect them to give us detailed bug descriptions (not ``It
  1101. doesn't work!''), try out new things we've put in to see if they work,
  1102. and give us general feed-back whether we ask for it or not.
  1103.  
  1104. Up until now, we have been pretty slack about who gets the beta
  1105. releases.  We have a small number of beta sites that we deal directly with,
  1106. but if other people really want to run the beta versions, they can do so,
  1107. providing they can get ahold of them somewhere.  Anybody who gives out a
  1108. beta release to a non-beta site is expected to clearly communicate that the
  1109. software is @emph{not} of public, production quality, and also that the manuals
  1110. frequently have not been updated to reflect all changes.  We do not make
  1111. any kind of guarantees to anybody who runs a beta release that they got
  1112. from somebody besides us.
  1113.